<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
      //Vue2版本响应式数据的实现原理,Object.defineProperty
      let VM = {};
      let data = {};
    //Object.defineProperty:可以给对象添加一个新的属性
    
    Object.defineProperty(data, 'msg', {
        //获取data的msg属性值的时候，会触发get方法
        get(){
           //get方法：return返回的数据作为data对象msg属性的属性值
           return VM.msg;
        }
        ,
        //描述符:中包含读取描述符get|set 
        //当data给msg设置数值的时候,会触发set方法,set方法执行，会接受一个参数设置的数值
        set(val) {
            //给VM通过点语法设置一个新的属性msg，且数值与data的msg相同
            VM.msg = val;
        }
    });
    //data设置设置一个数值
    data.msg = "我爱你塞北的雪";
    // //获取data新增的msg属性值
    // console.log(data.msg);

</script>